package jschool.manejadores;

import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;

import javax.swing.JOptionPane;

import jschool.entidades.Colegio;
import jschool.persistencia.Conexion;

public class ManejadorDeColegio {
	private ArrayList<Colegio> colegios = null;
	private static ManejadorDeColegio instancia = null;
	private Conexion conexion;
	private ResultSet rs = null;
	private PreparedStatement stmt = null;

	private ManejadorDeColegio() {
		conexion = Conexion.getInstancia();
	}

	public static ManejadorDeColegio getInstancia() {
		if (instancia == null) {
			instancia = new ManejadorDeColegio();
		}
		return instancia;
	}

	public ArrayList<Colegio> getColegio() {
		colegios = new ArrayList<Colegio>();
		try {
			String sql = "SELECT * FROM Colegio";
			stmt = (PreparedStatement) conexion.hacerEnunciado(sql);
			rs = conexion.hacerConsulta(sql);
			while (rs.next()) {
				Colegio colegio = new Colegio(rs.getString(1), rs.getString(2),
						rs.getString(3), rs.getString(4), rs.getString(5), rs
								.getString(6), rs.getString(7), rs.getString(8));
				colegios.add(colegio);
			}
		} catch (SQLException e) {
			e.printStackTrace();
			JOptionPane.showMessageDialog(null, "Error Listando Colegio");
			return null;
		}
		return colegios;
	}

	public int modificarColegio(Colegio colegio, String nombre) {
		int fila = 0;
		try {
			String sql = "UPDATE Colegio SET nombre = ?, direccion = ?, telefono1 = ?, "
					+ "telefono2 = ?, fax = ?, email = ?, web = ?, logo = ? WHERE nombre = ?";
			stmt = (PreparedStatement) conexion.hacerEnunciado(sql);
			stmt.setString(1, colegio.getNombre());
			stmt.setString(2, colegio.getDireccion());
			stmt.setString(3, colegio.getTelefono1());
			stmt.setString(4, colegio.getTelefono2());
			stmt.setString(5, colegio.getFax());
			stmt.setString(6, colegio.getEmail());
			stmt.setString(7, colegio.getWeb());
			stmt.setString(8, colegio.getLogo());
			stmt.setString(9, nombre);
			fila = stmt.executeUpdate();
			stmt.close();
		} catch (SQLException e) {
			e.printStackTrace();
			JOptionPane.showMessageDialog(null, "Error Modificando Colegio");
			return 0;
		}
		return fila;
	}
}
